home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-07-27 | 2.7 KB | 56 lines | [04] ASCII Text (0x0000) |
- Apple II
- File Type Notes
- _____________________________________________________________________________
- Developer Technical Support
-
- File Type: $B6 (182)
- Auxiliary Type: All
-
- Full Name: ProDOS 16 or GS/OS Permanent Initialization File
- Short Name: Permanent initialization file
-
- Written by: Matt Deatherage September 1990
-
- Files of this type contain initialization code that does not get unloaded.
- _____________________________________________________________________________
-
- Files of type $B6 contain permanent initialization code in OMF format. Such
- files are often referred to as "inits." They are loaded by GS/OS at boot time
- and are never unloaded. The auxiliary type is reserved except for bit 15--if
- bit 15 is set, the initialization file is not loaded at boot time.
-
- The structure of an init is similar to that of an application. The first byte
- of the loaded code image (inits are load files) is the entry point, and the
- init must end with an RTL instruction. When GS/OS transfers control to a
- permanent initialization file, the processor is in 16-bit native mode. The A
- register contains the init's user ID, D points to the bottom of a 4K stack and
- direct-page area and S points to near the top of that area. (If the init has
- an OMF stack and direct page segment linked in, the D and S registers point to
- it instead.) The data bank register is not defined; you should save it, set
- it and restore it if you use absolute addressing.
-
- Permanent inits are called at boot time and left in memory until the system is
- shut down. However, GS/OS does not call them again (even on a return from
- ProDOS 8). If your permanent init wants to periodically get control, it can
- use features like heartbeat tasks (installed with SetHeartBeat and IntSource),
- GS/OS notification procedures (AddNotifyProc), or Run Queue tasks (AddToRunQ).
-
- There is a mechanism your permanent init can use to tell GS/OS that it should
- be unloaded. Above GS/OS's RTL address on the stack is a Word value of $0000.
- If your init sets bit zero of this word (LDA #1, STA 4,S assuming you haven't
- pushed anything on the stack), GS/OS unloads your init when you return
- control, treating it as if it were a temporary init file. This can be useful
- for inits that operate with certain hardware--if the hardware isn't present,
- the init can go away.
-
- Warning: This Word space is not available to permanent initialization
- files that execute from a user's folder on an AppleShare
- file server at boot time.
-
-
- Further Reference
- _____________________________________________________________________________
- o GS/OS Reference
- o File Type Note for File Type $B7, Temporary Initialization Files
-
-